/**
 * 提示方法
 * @param {String} title 提示文字
 * @param {String}  icon icon图片
 * @param {Number}  duration 提示时间
 */
export function toast (title, icon = 'none', duration = 1500) {
  if (title) {
    uni.showToast({
      title,
      icon,
      duration
    })
  }
}

/**
 * 设置缓存
 * @param {String} key 键名
 * @param {String} data 值
 */
export function setStorageSync (key, data) {
  uni.setStorageSync(key, data)
}

/**
 * 获取缓存
 * @param {String} key 键名
 */
export function getStorageSync (key) {
  return uni.getStorageSync(key)
}

/**
 * 删除缓存
 * @param {String} key 键名
 */
export function removeStorageSync (key) {
  return uni.removeStorageSync(key)
}

/**
 * 清空缓存
 */
export function clearStorageSync () {
  return uni.clearStorageSync()
}

/**
 * 页面跳转
 * @param {String} url  转跳路径
 * @param {Object} params 跳转时携带的参数
 * @param {'navigateTo' | 'redirectTo' | 'reLaunch' | 'switchTab' | 'navigateBack' | number } type 转跳方式
 **/
export function useRouter (url, params = {}, type = 'navigateTo') {
  try {
    if (Object.keys(params).length) url = `${url}?data=${encodeURIComponent(JSON.stringify(params))}`
    if (type === 'navigateBack') {
      uni[type]({ delta: url })
    } else {
      uni[type]({ url })
    }
  } catch (error) {
    console.error(error)
  }
}

/**
 * 深拷贝
 * @param {Object} data
 **/
export const clone = (data) => JSON.parse(JSON.stringify(data))
